Include এবং Extend এর ব্যবহারের উদাহরণ

Modules এবং Mixins (মডিউলস এবং মিক্সিনস) - রুবি প্রোগ্রামিং (Ruby Programming) - Computer Programming

287

include এবং extend রুবির module ব্যবহারের জন্য দুটি গুরুত্বপূর্ণ কিওয়ার্ড। এগুলি ক্লাসের মধ্যে মডিউল বা তার ফিচার অন্তর্ভুক্ত (include) বা প্রসারিত (extend) করতে ব্যবহৃত হয়। include ব্যবহার করলে মডিউলের মেথডগুলো ক্লাসের ইনস্ট্যান্স মেথড হিসেবে পাওয়া যায়, এবং extend ব্যবহার করলে মডিউলের মেথডগুলো ক্লাসের ক্লাস মেথড হিসেবে পাওয়া যায়।

include Keyword:

include কিওয়ার্ড মডিউলকে একটি ক্লাসের মধ্যে অন্তর্ভুক্ত করতে ব্যবহৃত হয়, যাতে মডিউলের সব মেথড ক্লাসের ইনস্ট্যান্স মেথড হিসেবে অ্যাক্সেসযোগ্য হয়।

উদাহরণ:

module Greet
  def greet_user(name)
    puts "Hello, #{name}!"
  end
end

class User
  include Greet  # মডিউল অন্তর্ভুক্ত করা হচ্ছে

  def initialize(name)
    @name = name
  end

  def display_name
    puts "User's name is #{@name}"
  end
end

user = User.new("Alice")
user.greet_user("Alice")  # Output: Hello, Alice!
user.display_name  # Output: User's name is Alice

এখানে, Greet মডিউলটি User ক্লাসে include করা হয়েছে, যাতে greet_user মেথড User ক্লাসের ইনস্ট্যান্স মেথড হিসেবে ব্যবহার করা যায়। এই কারণে, আমরা user.greet_user("Alice") কল করতে পারি।


extend Keyword:

extend কিওয়ার্ড মডিউলকে একটি ক্লাসে বা অবজেক্টে class-level মেথড হিসেবে অন্তর্ভুক্ত করতে ব্যবহৃত হয়, অর্থাৎ মডিউলের মেথডগুলো ক্লাসের সিঙ্গেলটন (class-level) মেথড হিসেবে উপলব্ধ হয়।

উদাহরণ:

module MathOperations
  def square(number)
    number ** 2
  end
end

class Calculator
  extend MathOperations  # মডিউল ক্লাসের সিঙ্গেলটন মেথড হিসেবে অন্তর্ভুক্ত করা হচ্ছে
end

puts Calculator.square(5)  # Output: 25

এখানে, MathOperations মডিউলটি Calculator ক্লাসে extend করা হয়েছে, যার ফলে square মেথডটি Calculator ক্লাসের class-level মেথড হিসেবে কাজ করে। তাই আমরা Calculator.square(5) কল করতে পারি।


include এবং extend এর মধ্যে পার্থক্য

বৈশিষ্ট্যincludeextend
ব্যবহারক্লাসের ইনস্ট্যান্স মেথড তৈরি করতে ব্যবহৃত হয়।ক্লাসের ক্লাস মেথড তৈরি করতে ব্যবহৃত হয়।
মেথড অ্যাক্সেসমডিউলের মেথডগুলো ক্লাসের অবজেক্ট বা ইনস্ট্যান্স থেকে অ্যাক্সেস করা যায়।মডিউলের মেথডগুলো ক্লাসের নাম বা সিঙ্গেলটন অবজেক্ট থেকে অ্যাক্সেস করা যায়।
কোডের অবস্থানমডিউলকে ইনক্লুড করলে, মেথডগুলো ইনস্ট্যান্সে যোগ হয়।মডিউলকে এক্সটেন্ড করলে, মেথডগুলো ক্লাসে যোগ হয়।

সারসংক্ষেপ:

  • include ব্যবহৃত হয় ক্লাসের ইনস্ট্যান্স মেথড হিসেবে মডিউলের মেথড অন্তর্ভুক্ত করতে।
  • extend ব্যবহৃত হয় ক্লাসের ক্লাস মেথড হিসেবে মডিউলের মেথড অন্তর্ভুক্ত করতে।

রুবিতে include এবং extend কিওয়ার্ড দুটি খুবই শক্তিশালী এবং এটি কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বৃদ্ধি করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...